package com.foreknow.demo2;

import java.util.Scanner;

/**
 * 作业
 * 循环练习：
 * 模拟一个系统，系统的主要的功能  1. 注册   2. 登录   3.抽奖
 * 功能描述：
 * ********************************
 * 1. 注册
 * 2. 登录
 * 3. 抽奖
 * ********************************
 * 请选择菜单： 1
 *     显示注册
 * 是否继续(y/n)
 *     用户输入 y  重复执行操作
 *
 * ********************************
 * 1. 注册
 * 2. 登录
 * 3. 抽奖
 * ********************************
 * 请选择菜单： 2
 *     显示登录
 *
 * 实现注册的功能
 * 需求：
 * 1. 输入用户名和密码。
 * 2. 系统会生成一个四位的随机数。
 * ********************************
 * 1. 注册
 * 2. 登录
 * 3. 抽奖
 * ********************************
 * 请选择菜单： 1
 *     显示注册
 * 添加个人信息
 * 用户名: admin
 * 密码: 123456
 * 注册成功了
 * 用户名   密码    卡号
 * admin  123456   4563
 * 是否继续(y/n)
 *     用户输入 n  退出系统了，谢谢使用。
 *
 * 实现登录功能
 * 需求说明：
 * 输入注册时候的用户名和密码，如果正确提示用户登录成功。
 * 如果用户名和密码输入错误，提示用户继续输入，最多只能有3次机会
 * ********************************
 * 1. 注册
 * 2. 登录
 * 3. 抽奖
 * ********************************
 * 请选择菜单： 2
 *     显示登录
 * 请输入用户名  admin
 * 请输入密码 123456
 * 提示用户：登录成功并显示用户名
 * 是否继续（y/n） n  谢谢使用
 *
 * 分析：
 *  1. Scanner
 *  2. switch 条件是固定的，就三个功能
 *  3. 使用do...while循环 因为我们要显示菜单，需要判断条件
 *  4. 在case 1中根据需求完成注册功能  需要设置一个boolean类型的标识 默认为false,一旦注册成功就改true
 *  5. if(true){
 *       在case 2中完成登录的功能  使用equals判断用户名与密码是否正确
 *  *     注意如果用户没有注册是没有办法登录的。如何解决？
 *  } else {
 *      提示用户请先注册，然后再登录
 *  }
 *  6.抽奖
 *      生成5个随机数，保存到一个数组中。
 */
public class Example {
    public static void main(String[] args) {
        String answer = "y";
        String username = "";
        String password = "";
        boolean register = false; //注册标识
        boolean isLogin = false; //是否登录的标识
        do {
            System.out.println("***********************************");
            System.out.println("1. 注册");
            System.out.println("2. 登录");
            System.out.println("3. 抽奖");
            System.out.println("***********************************");
            Scanner input = new Scanner(System.in);
            System.out.println("请选择菜单：");
            int choice = input.nextInt();
            switch (choice) {
                case 1:
                    System.out.println("注册");
                    System.out.println("请输入用户名: ");
                    username = input.next();
                    System.out.println("请输入密码: ");
                    password  = input.next();
                    int cartNumber = (int) (Math.random()*(9999-1000))+1000;
                    System.out.println(username + "----" + password + "----" + cartNumber);
                    register = true;
                    break;
                case 2:
                    if(register) {
                        for(int i = 1;i <= 3;i++){
                            System.out.println("请输入登录的用户名: ");
                            String inputName = input.next();
                            System.out.println("请输入登录的密码: ");
                            String inputPass = input.next();
                            //判断用户名与密码是否相同
                            if(inputName.equals(username) && inputPass.equals(password)) {
                                System.out.println("欢迎: " + username);
                                isLogin = true;
                                break;
                            }else if(i < 3) {
                                System.out.println("您输入的用户密码密码错误,还有" + (3 - i) + "次机会");
                            }else {
                                System.out.println("您输入了3次错误的信息");
                            }
                        }
                    }else {
                        System.out.println("请先注册，然后才能登录");
                    }
                    break;
                case 3:
                    System.out.println("抽奖");
                    break;
            }
            System.out.println("是否继续(y/n)");
            answer = input.next();
        }while("y".equals(answer));
        if("n".equals(answer)) {
            System.out.println("谢谢使用......");
        }
    }
}
